package view.equipe;

import java.awt.Color;
import java.awt.Dimension;
import java.util.ArrayList;
import java.util.Observable;
import java.util.Observer;

import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

import server.models.Equipe;
import server.models.tireur.Tireur;

public class EquipeView extends JPanel  implements Observer {

	private static final long serialVersionUID = 1L;
	private ArrayList<Tireur> listeTireurs;

	public EquipeView(Equipe equipe) {
		super();
		creerLabelEquipe(equipe, Color.BLACK);
		for (Tireur tireur : equipe.getTireurs()) {
			this.add(new TireurView(tireur));
		}
		this.listeTireurs = new ArrayList<Tireur>();
		equipe.addObserver(this);

		this.repaint();
		this.setVisible(true);
	}

	@Override
	public void update(Observable observable, Object object) {
		for (Tireur tireur : ((Equipe)observable).getTireurs()) {
			if (!listeTireurs.contains(tireur)) {
				this.add(new TireurView(tireur));
				listeTireurs.add(tireur);
			}
		}
		
		this.validate();
	}

	private void creerLabelEquipe(Equipe equipe, Color couleur) {
		JLabel equipeLabel = new JLabel();
		equipeLabel.setText(equipe.getNom());
		equipeLabel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
		equipeLabel.setForeground(couleur);
		equipeLabel.setHorizontalAlignment(SwingConstants.CENTER);
		equipeLabel.setVerticalAlignment(SwingConstants.CENTER);
		this.add(equipeLabel);
	}

}
